home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Linux Cubed Series 7: Sunsite
/
Linux Cubed Series 7 - Sunsite Vol 1.iso
/
system
/
printing
/
nenscrip.000
/
nenscrip
/
nenscript-1.13++
/
Diff.ut
< prev
next >
Wrap
Text File
|
1992-11-19
|
18KB
|
488 lines
Only in .: Diff.ut
Only in .: encoding
Only in .: fil
Only in .: fil1
Only in .: font_lis.o
diff -c /home/sisug/jonas/Dos/nenscript/fontwidt.c ./fontwidt.c
*** /home/sisug/jonas/Dos/nenscript/fontwidt.c Thu Oct 1 18:02:48 1992
--- ./fontwidt.c Thu Nov 19 18:42:59 1992
***************
*** 11,16 ****
--- 11,17 ----
* (or money, cheques, free trips =8^) !!!!! ) please contact me
* care of geoffw@extro.ucc.oz.au
*
+ * Ugly fix for fractions of points by Jonas Lagerblad (jonas@sisu.se)
*/
#include "machdep.h"
***************
*** 77,82 ****
--- 78,84 ----
long size;
{
+ int rem = size % 100;
size /= 100;
if (strcmp (fontname, "Courier") != 0) {
***************
*** 84,93 ****
exit (1);
}
! if (size < 5 || size > 30) {
fprintf (stderr, "%s: %i not bwteen valid font sizes of 5 and 30 - sorry!!\n", progname, size);
exit (1);
}
return CourierFontWidths [size-5];
}
--- 86,100 ----
exit (1);
}
! if (size < 5 || size > 30 || (size == 30 && rem > 0)) {
fprintf (stderr, "%s: %i not bwteen valid font sizes of 5 and 30 - sorry!!\n", progname, size);
exit (1);
}
+ if (rem > 0) {
+ /* make an linear approximation of font size */
+ return CourierFontWidths [size-5] +
+ (CourierFontWidths [size-4] - CourierFontWidths [size-5]) * rem/100;
+ }
return CourierFontWidths [size-5];
}
Only in .: fontwidt.o
Only in .: latin1.txt
diff -c /home/sisug/jonas/Dos/nenscript/machdep.h ./machdep.h
*** /home/sisug/jonas/Dos/nenscript/machdep.h Thu Oct 1 16:06:22 1992
--- ./machdep.h Thu Nov 19 14:34:27 1992
***************
*** 45,51 ****
# define LPR "lpr -P " /* spooler with option to set name of printer */
# define STRICMP(s1,s2) strcasecmp(s1,s2)
! # define STRDUP(str) strdup(str)
# define USERNAME ((getpwuid (getuid()))->pw_name)
--- 45,55 ----
# define LPR "lpr -P " /* spooler with option to set name of printer */
# define STRICMP(s1,s2) strcasecmp(s1,s2)
! # ifdef ultrix
! # define STRDUP(str) strcpy(malloc(strlen(str)+1), str)
! # else
! # define STRDUP(str) strdup(str)
! # endif
# define USERNAME ((getpwuid (getuid()))->pw_name)
Only in .: main.o
diff -c /home/sisug/jonas/Dos/nenscript/makefile ./makefile
*** /home/sisug/jonas/Dos/nenscript/makefile Thu Oct 1 18:03:16 1992
--- ./makefile Thu Nov 19 18:23:19 1992
***************
*** 33,38 ****
--- 33,39 ----
CP = cp
RM = rm
INSTALL = /etc/install
+ INSTALL = install
all debug: $(PROG)
***************
*** 42,48 ****
main.$(OBJ): main.c
install: $(PROG)
! $(INSTALL) -f $(BININSTALLDIR) -s -m 555 $(PROG)
install.man: $(MAN)
$(INSTALL) -f $(MAININSTALLDIR) -m 444 $(MAN)
--- 43,50 ----
main.$(OBJ): main.c
install: $(PROG)
! $(INSTALL) -s -m 555 $(PROG) $(BININSTALLDIR)
! $(INSTALL) -m 444 $(MAN) $(MANINSTALLDIR)
install.man: $(MAN)
$(INSTALL) -f $(MAININSTALLDIR) -m 444 $(MAN)
Only in .: nenscript
diff -c /home/sisug/jonas/Dos/nenscript/nenscript.1 ./nenscript.1
*** /home/sisug/jonas/Dos/nenscript/nenscript.1 Wed Oct 7 14:59:56 1992
--- ./nenscript.1 Thu Nov 19 18:21:12 1992
***************
*** 48,54 ****
Font specifications are formed from the font name and the font size, i.e.
.B Courier10
! specifies a 10 point Courier font, and Courier-Bold12 specifies a bold, 12 point Courier font.
The NENSCRIPT environment variable may be used to set default values for most
configurable attributes. Values set in this way will be overridden by any
--- 48,58 ----
Font specifications are formed from the font name and the font size, i.e.
.B Courier10
! specifies a 10 point Courier font, and Courier-Bold12 specifies a bold, 12 point Courier font. Sizes can also be given with a decimal point, i.e.
! .B Courier7.5
! specifies a 7.5 point font, this might however result in a marginal error in
! the size calculations, since a linear approximation of the character width
! is done.
The NENSCRIPT environment variable may be used to set default values for most
configurable attributes. Values set in this way will be overridden by any
Only in .: nenscript.1.bak
Only in .: paper.o
diff -c /home/sisug/jonas/Dos/nenscript/postscri.c ./postscri.c
*** /home/sisug/jonas/Dos/nenscript/postscri.c Thu Oct 1 18:02:52 1992
--- ./postscri.c Thu Nov 19 18:41:52 1992
***************
*** 11,16 ****
--- 11,18 ----
* (or money, cheques, free trips =8^) !!!!! ) please contact me
* care of geoffw@extro.ucc.oz.au
*
+ * Latin1 caracter set handling and fraction point sizes added by
+ * Jonas Lagerblad (jonas@sisu.se).
*/
#include "machdep.h"
***************
*** 86,92 ****
*/
#ifdef __STDC__
! void PrintPSString (FILE *, char *, long);
void EndPage (FILE *);
void StartPage (FILE *);
void PrintLine (FILE *, char *, long, int);
--- 88,94 ----
*/
#ifdef __STDC__
! void PrintPSString (FILE *, unsigned char *, long);
void EndPage (FILE *);
void StartPage (FILE *);
void PrintLine (FILE *, char *, long, int);
***************
*** 107,122 ****
void PrintPSString (stream, line, len)
FILE *stream;
! char *line;
long len;
{
register long i;
! register char * str = line;
fprintf (stream, "(");
for (i = 0; i < len ; i++)
! fprintf (stream, "%s%c", str[i] == ')' ||
str[i] == '(' ||
str[i] == '\\' ? "\\" : "", str[i]);
fprintf (stream, ")");
--- 109,127 ----
void PrintPSString (stream, line, len)
FILE *stream;
! unsigned char *line;
long len;
{
register long i;
! register unsigned char * str = line;
fprintf (stream, "(");
for (i = 0; i < len ; i++)
! if ( str[i] & 0x80 )
! fprintf (stream, "\\%03o", str[i]);
! else
! fprintf (stream, "%s%c", str[i] == ')' ||
str[i] == '(' ||
str[i] == '\\' ? "\\" : "", str[i]);
fprintf (stream, ")");
***************
*** 136,151 ****
{
char *p, *s, *t;
int i;
/* get ptr to end of string */
p = &font[strlen(font)-1];
/* move backwards until we find a character that is not a digit */
! while (p > font && isdigit (*p))
p--;
/* extract the font size */
! *fontsize = atol (++p) * SCALE;
/* now duplicate and copy the font name */
t = s = (char *)malloc (p - font + 1);
--- 141,157 ----
{
char *p, *s, *t;
int i;
+ extern double atof();
/* get ptr to end of string */
p = &font[strlen(font)-1];
/* move backwards until we find a character that is not a digit */
! while (p > font && (isdigit (*p) || *p == '.'))
p--;
/* extract the font size */
! *fontsize = atof (++p) * SCALE;
/* now duplicate and copy the font name */
t = s = (char *)malloc (p - font + 1);
***************
*** 366,371 ****
--- 372,438 ----
EndPage (stream);
}
+ static char pspro_latin1_data[] = { "\
+ /newcodes % foreign character encodings\n\
+ [\n\
+ 160/space 161/exclamdown 162/cent 163/sterling 164/currency\n\
+ 165/yen 166/brokenbar 167/section 168/dieresis 169/copyright\n\
+ 170/ordfeminine 171/guillemotleft 172/logicalnot 173/hyphen 174/registered\n\
+ 175/macron 176/degree 177/plusminus 178/twosuperior 179/threesuperior\n\
+ 180/acute 181/mu 182/paragraph 183/periodcentered 184/cedilla\n\
+ 185/onesuperior 186/ordmasculine 187/guillemotright 188/onequarter\n\
+ 189/onehalf 190/threequarters 191/questiondown 192/Agrave 193/Aacute\n\
+ 194/Acircumflex 195/Atilde 196/Adieresis 197/Aring 198/AE 199/Ccedilla\n\
+ 200/Egrave 201/Eacute 202/Ecircumflex 203/Edieresis 204/Igrave 205/Iacute\n\
+ 206/Icircumflex 207/Idieresis 208/Eth 209/Ntilde 210/Ograve 211/Oacute\n\
+ 212/Ocircumflex 213/Otilde 214/Odieresis 215/multiply 216/Oslash\n\
+ 217/Ugrave 218/Uacute 219/Ucircumflex 220/Udieresis 221/Yacute 222/Thorn\n\
+ 223/germandbls 224/agrave 225/aacute 226/acircumflex 227/atilde\n\
+ 228/adieresis 229/aring 230/ae 231/ccedilla 232/egrave 233/eacute\n\
+ 234/ecircumflex 235/edieresis 236/igrave 237/iacute 238/icircumflex\n\
+ 239/idieresis 240/eth 241/ntilde 242/ograve 243/oacute 244/ocircumflex\n\
+ 245/otilde 246/odieresis 247/divide 248/oslash 249/ugrave 250/uacute\n\
+ 251/ucircumflex 252/udieresis 253/yacute 254/thorn 255/ydieresis\n\
+ ] def\n\
+ \n\
+ /reencdict 12 dict def\n\
+ \n\
+ " };
+
+ static char pspro_latin1_func[] = { "\n\
+ % change fonts using ISO Latin1 characters\n\
+ /ChgFnt % size psname natname => font\n\
+ {\n\
+ dup FontDirectory exch known % is re-encoded name known?\n\
+ { exch pop } % yes, get rid of long name\n\
+ { dup 3 1 roll ReEncode } ifelse % no, re-encode it\n\
+ findfont exch scalefont setfont\n\
+ } def\n\
+ \n\
+ /ReEncode %\n\
+ {\n\
+ reencdict begin\n\
+ /newname exch def\n\
+ /basename exch def\n\
+ /basedict basename findfont def\n\
+ /newfont basedict maxlength dict def\n\
+ basedict\n\
+ { exch dup /FID ne\n\
+ { dup /Encoding eq\n\
+ { exch dup length array copy newfont 3 1 roll put }\n\
+ { exch newfont 3 1 roll put } ifelse\n\
+ }\n\
+ { pop pop } ifelse\n\
+ } forall\n\
+ newfont /FontName newname put\n\
+ newcodes aload pop newcodes length 2 idiv\n\
+ { newfont /Encoding get 3 1 roll put } repeat\n\
+ newname newfont definefont pop\n\
+ end\n\
+ } def\n\
+ \n\
+ " };
+
/********************************
StartJob
Called when a new job is to be started. This performs all of the
***************
*** 480,485 ****
--- 547,555 ----
/* End of header marker */
fprintf (stream, "%%%%EndComments\n");
+ /* allow Latin-1 character set by remapping most characters above 127 */
+ fprintf (stream, "%s\n%s", pspro_latin1_data, pspro_latin1_func);
+
/* scale the coordinate system by SCALE so we can use integer arithmetic
without losing accuracy */
fprintf (stream, "1 %li div dup scale\n", SCALE);
***************
*** 551,565 ****
}
/* define a variable for our body font, and calculate the character width for later use */
! fprintf (stream, "/BodyF /%s findfont %li scalefont def\n", bodyfont, BFH);
! fprintf (stream, "/CW BodyF setfont ( ) stringwidth pop def\n");
/* define variables for various other font used - title, gaudy page number, gaudy date, gaudy title */
! fprintf (stream, "/Titlef /%s findfont %li scalefont def\n", titlefont, TFH);
if (GaudyFlag) {
! fprintf (stream, "/Gpnf /%s findfont %li scalefont def\n", gaudyPNfont, gaudyPNfontsize);
! fprintf (stream, "/Gdatef /%s findfont %li scalefont def\n", gaudydatefont, gaudydatefontsize);
! fprintf (stream, "/Gtitlef /%s findfont %li scalefont def\n", gaudytitlefont, gaudytitlefontsize);
}
/* define procedures for drawing continuation line markers, continuation lines, normal lines, and performing indents */
--- 621,640 ----
}
/* define a variable for our body font, and calculate the character width for later use */
! fprintf (stream, "/BodyF { %li /%s /%s-Latin1 ChgFnt } def\n", BFH, bodyfont,
! bodyfont, BFH);
! fprintf (stream, "/CW BodyF ( ) stringwidth pop def\n");
/* define variables for various other font used - title, gaudy page number, gaudy date, gaudy title */
! fprintf (stream, "/Titlef { %li /%s /%s-Latin1 ChgFnt } def\n", TFH, titlefont,
! titlefont);
if (GaudyFlag) {
! fprintf (stream, "/Gpnf { %li /%s /%s-Latin1 ChgFnt } def\n", gaudyPNfontsize,
! gaudyPNfont, gaudyPNfont);
! fprintf (stream, "/Gdatef { %li /%s /%s-Latin1 ChgFnt } def\n",
! gaudydatefontsize, gaudydatefont, gaudydatefont);
! fprintf (stream, "/Gtitlef { %li /%s /%s-Latin1 ChgFnt } def\n",
! gaudytitlefontsize, gaudytitlefont, gaudytitlefont);
}
/* define procedures for drawing continuation line markers, continuation lines, normal lines, and performing indents */
***************
*** 588,594 ****
/* define stuff for security strings */
if (Classification != NULL) {
! fprintf (stream, "/Classf /%s findfont %li scalefont def\n", classfont, classfontsize);
fprintf (stream, "/ClassString ");
PrintPSString (stream, Classification, strlen(classification));
fprintf (stream, " def\n");
--- 663,670 ----
/* define stuff for security strings */
if (Classification != NULL) {
! fprintf (stream, "/Classf { %li /%s /%s-Latin1 ChgFnt } def\n", classfontsize,
! classfont, classfont);
fprintf (stream, "/ClassString ");
PrintPSString (stream, Classification, strlen(classification));
fprintf (stream, " def\n");
***************
*** 598,609 ****
/* define the start page procedure used to start every page */
fprintf (stream, "/StartPage { /SavedPage save def\n");
if (Classification != NULL)
! fprintf (stream, " Classf setfont %li %li moveto ClassString Centre 0 setgray show\n", PW / 2, ClassY);
if (TitleEnabled) {
if (GaudyFlag) {
fprintf (stream, " G\n"); /* draw boxes */
! fprintf (stream, " Gtitlef setfont %li %li moveto Centre 0 setgray show\n", /* title */
((LM + (papermetrics->GaudyBoxWidth * SCALE)) +
(PW - RM - (papermetrics->GaudyBoxWidth * SCALE))) / 2L,
TitleY - (papermetrics->GaudyBoxHeight * SCALE) +
--- 674,685 ----
/* define the start page procedure used to start every page */
fprintf (stream, "/StartPage { /SavedPage save def\n");
if (Classification != NULL)
! fprintf (stream, " Classf %li %li moveto ClassString Centre 0 setgray show\n", PW / 2, ClassY);
if (TitleEnabled) {
if (GaudyFlag) {
fprintf (stream, " G\n"); /* draw boxes */
! fprintf (stream, " Gtitlef %li %li moveto Centre 0 setgray show\n", /* title */
((LM + (papermetrics->GaudyBoxWidth * SCALE)) +
(PW - RM - (papermetrics->GaudyBoxWidth * SCALE))) / 2L,
TitleY - (papermetrics->GaudyBoxHeight * SCALE) +
***************
*** 615,624 ****
PrintPSString (stream, title, strlen(title));
fprintf (stream, " Centre show\n");
}
! fprintf (stream, " Gpnf setfont %li %li moveto Centre 1 setgray show\n", /* page number */
PW - RM - ((papermetrics->GaudyBoxWidth * SCALE) / 2L),
TitleY - ((papermetrics->GaudyBoxHeight * SCALE) / 2L) - gaudyPNfontsize * 7L / 20L);
! fprintf (stream, " Gdatef setfont %li %li moveto (%s) Centre 0 setgray show\n",
LM + ((papermetrics->GaudyBoxWidth * SCALE) / 2L),
TitleY - ((papermetrics->GaudyBoxHeight * SCALE) * 3L / 5L) - gaudydatefontsize * 7L / 10L, tm_string);
fprintf (stream, " %li %li moveto (%s) Centre show\n",
--- 691,700 ----
PrintPSString (stream, title, strlen(title));
fprintf (stream, " Centre show\n");
}
! fprintf (stream, " Gpnf %li %li moveto Centre 1 setgray show\n", /* page number */
PW - RM - ((papermetrics->GaudyBoxWidth * SCALE) / 2L),
TitleY - ((papermetrics->GaudyBoxHeight * SCALE) / 2L) - gaudyPNfontsize * 7L / 20L);
! fprintf (stream, " Gdatef %li %li moveto (%s) Centre 0 setgray show\n",
LM + ((papermetrics->GaudyBoxWidth * SCALE) / 2L),
TitleY - ((papermetrics->GaudyBoxHeight * SCALE) * 3L / 5L) - gaudydatefontsize * 7L / 10L, tm_string);
fprintf (stream, " %li %li moveto (%s) Centre show\n",
***************
*** 625,631 ****
LM + ((papermetrics->GaudyBoxWidth * SCALE) / 2L),
TitleY - ((papermetrics->GaudyBoxHeight * SCALE) * 3L / 5L) + gaudydatefontsize * 7L / 10L, dt_string);
} else {
! fprintf (stream, " 0 setgray Titlef setfont %li %li moveto ", LM, TitleY);
if (title != NULL) {
fprintf (stream, "pop pop ");
PrintPSString (stream, title, strlen(title));
--- 701,707 ----
LM + ((papermetrics->GaudyBoxWidth * SCALE) / 2L),
TitleY - ((papermetrics->GaudyBoxHeight * SCALE) * 3L / 5L) + gaudydatefontsize * 7L / 10L, dt_string);
} else {
! fprintf (stream, " 0 setgray Titlef %li %li moveto ", LM, TitleY);
if (title != NULL) {
fprintf (stream, "pop pop ");
PrintPSString (stream, title, strlen(title));
***************
*** 637,643 ****
}
}
}
! fprintf (stream, " BodyF setfont 0 setgray } def\n");
/* define end page procedure */
fprintf (stream, "/EndPage {");
--- 713,719 ----
}
}
}
! fprintf (stream, " BodyF 0 setgray } def\n");
/* define end page procedure */
fprintf (stream, "/EndPage {");
***************
*** 644,650 ****
if (GaudyFlag && Columns == 2)
fprintf (stream, " %li %li moveto %li -%li rlineto stroke ", LM + WW + (papermetrics->ColumnSep * SCALE / 2), StartY, 0L, StartY - EndY);
if (Classification != NULL)
! fprintf (stream, " Classf setfont %li %li moveto ClassString Centre 0 setgray show\n", PW / 2, ClassBottomY);
fprintf (stream, "showpage SavedPage restore } def\n");
/* end of the header */
--- 720,726 ----
if (GaudyFlag && Columns == 2)
fprintf (stream, " %li %li moveto %li -%li rlineto stroke ", LM + WW + (papermetrics->ColumnSep * SCALE / 2), StartY, 0L, StartY - EndY);
if (Classification != NULL)
! fprintf (stream, " Classf %li %li moveto ClassString Centre 0 setgray show\n", PW / 2, ClassBottomY);
fprintf (stream, "showpage SavedPage restore } def\n");
/* end of the header */
Only in .: postscri.o
Only in .: print.o